﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using DoAnWeb.DTO;
using System.Data;

namespace DoAnWeb.DAO
{
    public class CartDAO
    {
        readonly List<CartDTO> _items;
        public List<CartDTO> Items
        {
            get { return _items; }
        }
        public CartDAO()
        {
            _items = new List<CartDTO>();
        }
        ///<summary>
        /// Thêm 1 item vào giỏ
        /// </summary>
        /// <param name = "item"></param>
        public void AddItem(CartDTO item)
        {
            CartDTO existedItem = _items.SingleOrDefault(c => c.MaSanPham == item.MaSanPham);
            if (existedItem != null)
            {
                existedItem.Quantity += item.Quantity;

            }
            else
                _items.Add(item);
        }
        ///<summary>
        /// Cập nhật số lượng 1 item
        /// </summary>
        /// <param name = "MaSanPham"></param>
        /// <param name = "quantity"></param>
        public void UpdateItem(int MaSanPham, int quantity)
        {
            CartDTO itemToUpd = _items.Single(c => c.MaSanPham == MaSanPham);
            itemToUpd.Quantity = quantity ;
        }
        ///<summary>
        /// xóa một sản phẩm ra khỏi giỏ
        /// </summary>
        /// <param name = "MaSanPham"></param>
        public void RemoveItem(int MaSanPham)
        {
            CartDTO itemToDel = _items.Single(c => c.MaSanPham == MaSanPham);
            _items.Remove(itemToDel);
        }
        ///<summary>
        /// Tính tổng lượng item đang có trong giỏ
        /// </summary>
        /// <returns></returns>
        public int GetNumberOfItem()
        {
            return _items.Sum(c => c.Quantity);
        }
    }
}